ListNode* modifiedList(vector<int>& nums, ListNode* head) {
        unordered_set<int> st(nums.begin(), nums.end()); // 自动去重
        ListNode dummy(0, head); // 栈上创建对象，dummy 是局部变量，作用域结束后自动销毁，无需手动释放内存
        ListNode *cur = &dummy;
        // 或者这样写（需要手动delete）
        // ListNode *dummy = new ListNode(0, head);  // 堆上动态分配
        // ListNode *cur = dummy;  // cur 和 dummy 指向同一地址
        while(cur->next)
        {
            if(st.contains(cur->next->val)) cur->next = cur->next->next;
            else cur = cur->next;
        }
        return dummy.next; // dummy 是对象（不是指针），应该用 . 访问成员：dummy.next
    }